package com.fuze.service;

import com.fuze.domain.dto.DataGridView;
import com.fuze.domain.dto.UserDTO;
import com.fuze.domain.model.User;
import com.fuze.domain.vo.LoginFormVO;
import com.fuze.domain.vo.UserQueryVO;

/**
 * @author sepc_
 * @date 4/7/2021 15:55
 */
public interface UserService {

    /**
     * 登录处理
     *
     * @param loginFormVO 登录的表单数据
     * @return 成功登录的Token
     */
    String login(LoginFormVO loginFormVO);

    /**
     * 判断用户是否存在
     *
     * @param username 用户名
     * @return 用户名是否存在
     */
    Boolean existByUsername(String username);

    /**
     *
     * 购电公司名+户号存在已经注册
     * @param marketMembersName 购电公司名+户号
     * @return 是否已经注册
     */
    Boolean existByMarketMembersName(String marketMembersName);

    /**
     * 用户注册
     * @param userDTO 用户注册数据
     * @return 插入的数据
     */
    int register(UserDTO userDTO);

    /**
     * 根据用户id删除用户
     * @param userIds 用户的id数组
     * @return 删除数据的条数
     */
    int deleteByIds(Integer[] userIds);

    /**
     * 分页查询用户
     * @param userQueryVO 用户的分页查询
     * @return 查询集合
     */
    DataGridView listUserForPage(UserQueryVO userQueryVO);

    /**
     * 根据用户的Id查询出用户
     * @param userId 用户的Id
     * @return 查询得到的用户模型
     */
    User findUserById(Integer userId);

    /**
     * 用户更新
     * @param userDTO 用户更新的数据
     * @return 更新的数据量
     */
    int update(UserDTO userDTO);
}
